/*
 * Copyright 2008-2023 dexian.vip. All rights reserved.
 * Support: http://www.dexian.vip
 * License: http://www.dexian.vip/license
 */

package vip.dexian.admin.dto;

import vip.dexian.admin.enums.GenderEnum;
import vip.dexian.core.base.bean.BaseDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.io.Serial;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 管理员DTO
 *
 * @author 挺好的 2023年06月05日 8:45
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
public class AdminDTO extends BaseDTO <Long> {

    @Serial
    private static final long serialVersionUID = -725540204363161909L;

    /**
     * 姓名
     */
    private String name;

    /**
     * 用户名
     */
    private String username;

    /**
     * 手机号码
     */
    private String mobile;

    /**
     * 性别
     */
    private GenderEnum gender;

    /**
     * 头像
     */
    private String avatar;

    /**
     * 是否启用
     */
    private Boolean isEnabled;

    /**
     * 账户是否锁定
     */
    private Boolean isAccountNonLocked;

    /**
     * 登录失败次数，该属性配合loginDate完成账户锁定解锁功能
     */
    private Integer loginFailureCount;

    /**
     * 最后登录时间
     */
    private LocalDateTime loginDate;

    /**
     * 最后登录IP。
     */
    private String loginIp;

    /**
     * 账户登录失败的锁定时间
     */
    private LocalDateTime lockedDate;

    /**
     * 部门id
     */
    private Long departmentId;

    /**
     * 关联的角色id
     */
    private List <Long> roleIds;

    /**
     * 是否在线
     */
    private Boolean isOnline;
}
